AWK একটি শক্তিশালী টুল যা একই সময়ে একাধিক ফাইল প্রক্রিয়াকরণে সক্ষম। এটি আপনাকে বিভিন্ন ফাইল থেকে ডেটা ফিল্টার করা, বিশ্লেষণ করা এবং আউটপুট তৈরি করতে সহায়তা করে। AWK যখন একাধিক ফাইল নিয়ে কাজ করে, তখন প্রতিটি ফাইলের জন্য ডেটা লাইন বাই লাইন পড়া হয় এবং প্রক্রিয়াকরণ করা হয়।
AWK ব্যবহার করে একাধিক ফাইল একসাথে প্রক্রিয়া করার জন্য, ফাইলের নামগুলি AWK কমান্ডের শেষে একের পর এক তালিকাভুক্ত করা হয়। AWK নিজেই প্রতিটি ফাইল প্রক্রিয়া করে এবং FILENAME
ভেরিয়েবল ব্যবহার করে বর্তমান ফাইলের নাম চিহ্নিত করা যায়।
awk 'pattern { action }' file1.txt file2.txt ...
awk '{ print $1, $2 }' file1.txt file2.txt
এটি file1.txt
এবং file2.txt
থেকে প্রতিটি লাইনের প্রথম এবং দ্বিতীয় ফিল্ড প্রিন্ট করবে।
FILENAME
ভেরিয়েবলের ব্যবহারAWK-এর বিল্ট-ইন ভেরিয়েবল FILENAME
ব্যবহার করে আপনি জানতে পারবেন কোন ফাইল থেকে বর্তমানে ডেটা পড়া হচ্ছে।
awk '{ print FILENAME ": " $0 }' file1.txt file2.txt
এই কমান্ডটি প্রতিটি লাইনের সামনে ফাইলের নামসহ পুরো লাইন প্রিন্ট করবে।
আউটপুট:
file1.txt: Line 1 of file1
file1.txt: Line 2 of file1
file2.txt: Line 1 of file2
file2.txt: Line 2 of file2
AWK-তে FNR
ভেরিয়েবল ব্যবহার করে প্রতিটি ফাইলের লাইন নম্বর ট্র্যাক করা যায়। NR
ভেরিয়েবল পুরো প্রক্রিয়াকরণের জন্য মোট লাইন নম্বর ট্র্যাক করে, কিন্তু FNR
প্রতিটি ফাইলের জন্য পুনরায় শুরু হয়।
awk 'FNR == 1 { print "Processing file:", FILENAME } { print $0 }' file1.txt file2.txt
এই স্ক্রিপ্টটি প্রতিটি নতুন ফাইলের শুরুতে ফাইলের নাম প্রিন্ট করবে এবং তারপরে প্রতিটি লাইন প্রিন্ট করবে।
ধরা যাক, আপনি দুটি ফাইল থেকে দ্বিতীয় কলামের যোগফল বের করতে চান।
awk '{ sum += $2 } END { print "Total sum of second column:", sum }' file1.txt file2.txt
এটি file1.txt
এবং file2.txt
থেকে দ্বিতীয় কলামের সমস্ত মানের যোগফল প্রিন্ট করবে।
AWK-এর if
শর্ত ব্যবহার করে, আপনি নির্দিষ্ট ফাইলের ডেটা ফিল্টার করতে পারেন।
awk 'FILENAME == "file1.txt" && $1 ~ /pattern/ { print $0 }' file1.txt file2.txt
এটি শুধুমাত্র file1.txt
থেকে প্রথম ফিল্ডে "pattern" থাকা লাইনগুলো প্রিন্ট করবে।
AWK ব্যবহার করে একাধিক ফাইল প্রক্রিয়াকরণ একটি অত্যন্ত কার্যকরী পদ্ধতি, যা ডেটা বিশ্লেষণ এবং ফিল্টার করার কাজকে সহজ করে। FILENAME
এবং FNR
এর মতো বিল্ট-ইন ভেরিয়েবল ব্যবহার করে, আপনি একাধিক ফাইল নিয়ে কাজ করার সময় আরও নিয়ন্ত্রণ পেতে পারেন। এই বৈশিষ্ট্যগুলি AWK-কে ডেটা ম্যানিপুলেশনের জন্য একটি শক্তিশালী টুল হিসেবে প্রতিষ্ঠিত করেছে।
common.read_more